#pragma once

#include "KnowledgeBaseWriterTextLocalizationInterface.h"

class KnowledgeBaseWriterTextLocalizationFake;
typedef Factory < KnowledgeBaseWriterTextLocalizationInterface >::CastedPtr < KnowledgeBaseWriterTextLocalizationFake >
	KnowledgeBaseWriterTextLocalizationFakePtr;

class KnowledgeBaseWriterTextLocalizationFake
: public KnowledgeBaseWriterTextLocalizationInterface
{
public:
	static KnowledgeBaseWriterTextLocalizationFakePtr Spawn ();
	static void CheckInnocence ();
private:
	virtual std::string GlobalAddress ();
	virtual std::string SeniorKey ();
	virtual std::string SeniorType ();
	virtual std::string LexemText ();
	virtual std::string UpperBranch ();
	virtual std::string LowerBranch ();
	virtual std::string NextLevel ();
	virtual std::string Synonym ();
	virtual std::string AdjacentAscending ();
	virtual std::string AdjacentDescending ();
	virtual std::string BeforeAdjacentAscending ();
	virtual std::string BeforeAdjacentDescending ();
	virtual std::string GreaterAscending ();
	virtual std::string GreaterDescending ();
	virtual std::string LesserAscending ();
	virtual std::string LesserDescending ();
	virtual std::string TypeRoot ();
	virtual std::string ValueRoot ();
public:
	std::string globalAddress;
	std::string seniorKey;
	std::string seniorType;
	std::string lexemText;
	std::string upperBranch;
	std::string lowerBranch;
	std::string nextLevel;
	std::string synonym;
	std::string adjacentAscending;
	std::string adjacentDescending;
	std::string beforeAdjacentAscending;
	std::string beforeAdjacentDescending;
	std::string greaterAscending;
	std::string greaterDescending;
	std::string lesserAscending;
	std::string lesserDescending;
	std::string typeRoot;
	std::string valueRoot;
private:
	static Factory < KnowledgeBaseWriterTextLocalizationInterface > factory;
};
